// OpenCVView.cpp : Defines the initialization routines for the DLL.
//

#include "stdafx.h"
#include "OpenCVApp.h"
#include "OpenCVFrm.h"
#include "OpenCVDoc.h"
#include "OpenCVView.h"


#ifdef _DEBUG
#define new DEBUG_NEW
#endif

//
//TODO: If this DLL is dynamically linked against the MFC DLLs,
//		any functions exported from this DLL which call into
//		MFC must have the AFX_MANAGE_STATE macro added at the
//		very beginning of the function.
//
//		For example:
//
//		extern "C" BOOL PASCAL EXPORT ExportedFunction()
//		{
//			AFX_MANAGE_STATE(AfxGetStaticModuleState());
//			// normal function body here
//		}
//
//		It is very important that this macro appear in each
//		function, prior to any calls into MFC.  This means that
//		it must appear as the first statement within the 
//		function, even before any object variable declarations
//		as their constructors may generate calls into the MFC
//		DLL.
//
//		Please see MFC Technical Notes 33 and 58 for additional
//		details.
//

// COpenCVApp

BEGIN_MESSAGE_MAP(COpenCVApp, CWinApp)
END_MESSAGE_MAP()


// COpenCVApp construction

COpenCVApp::COpenCVApp()
{
	// TODO: add construction code here,
	// Place all significant initialization in InitInstance
}


// The one and only COpenCVApp object

COpenCVApp theApp;


// COpenCVApp initialization

BOOL COpenCVApp::InitInstance()
{
	CWinApp::InitInstance();
	CMediaData::g_FilePath = GetFullPath();
	return TRUE;
}


// global function exports so we can be loaded by DLL
CMyMultiDocTemplate* FilyDocTemplate()
{
	// create the CMyMultiDocTemplate object to pass to exe
	// we have to be using the local resources when we do this as
	// the CDocTemplate constructor calls LoadTemplate() before the
	// vtable for virtual functions is setup and calls the base
	// class implementation
	AFX_MANAGE_STATE(AfxGetStaticModuleState()) ;
	CMyMultiDocTemplate	*pTemplate = NULL ;

	pTemplate = new CMyMultiDocTemplate(
		theApp.m_hInstance,			// the APP's resource instance
		IDR_OPENCV_DOCUMENT,
		RUNTIME_CLASS(COpenCVDoc),
		RUNTIME_CLASS(COpenCVFrm), // custom MDI child frame
		RUNTIME_CLASS(COpenCVView));
	return pTemplate ;
}


CString OpenDocmentFile()
{	
	CString inifile;
    TCHAR buffer[MAX_PATH + 2];
    DWORD v = GetModuleFileName(theApp.m_hInstance, buffer, MAX_PATH + 1);
    buffer[MAX_PATH + 1] = 0;
	inifile = buffer;
	inifile = inifile.Mid(0,inifile.GetLength()-3) + _T("ini");
	return inifile ;
}

// GetFullPath
CString COpenCVApp::GetFullPath(void)
{
	CString inifile;
    TCHAR buffer[MAX_PATH + 2];
    DWORD v = GetModuleFileName(theApp.m_hInstance, buffer, MAX_PATH + 1);
    buffer[MAX_PATH + 1] = 0;
	inifile = buffer;
	return inifile;
}
